import {docs} from '@/.source';
import {type InferPageType, loader} from 'fumadocs-core/source';
import {icons} from 'lucide-react';
import {createElement} from "react";
import {i18n} from "@/lib/i18n";

// See https://fumadocs.vercel.app/docs/headless/source-api for more info
export const source = loader({
    i18n,
    baseUrl: '/docs',
    source: docs.toFumadocsSource(),
    icon(icon) {
        if (!icon) {
            // You may set a default icon
            return;
        }
        if (icon in icons) return createElement(icons[icon as keyof typeof icons]);
    },
});

export function getPageImage(page: InferPageType<typeof source>) {
    const segments = [...page.slugs, 'image.png'];

    return {
        segments,
        url: `/og/docs/${segments.join('/')}`,
    };
}

export async function getLLMText(page: InferPageType<typeof source>) {
    const processed = await page.data.getText('processed');

    return `# ${page.data.title} (${page.url})

${processed}`;
}
